package com.ahua.mallchat.common.domain.pojo;

import lombok.Data;
import org.springframework.util.StringUtils;

import java.util.Objects;

/**
 * ip解析实体类
 */
@Data
public class IpInfo {

    /**
     * 注册时的ip
     */
    private String createIp;

    /**
     * 注册时的ip详情
     */
    private IpDetail createIpDetail;

    /**
     * 最新登录的ip
     */
    private String updateIp;

    /**
     * 最新登录的ip详情
     */
    private IpDetail updateIpDetail;

    /**
     * 内聚方法 更新ip
     */
    public void refreshIp(String ip) {
        if (!StringUtils.hasText(ip)) {
            return;
        }

        //如果注册ip为空，那这次的ip也是注册ip
        if (!StringUtils.hasText(createIp)) {
            createIp = ip;
        }

        //更新最新ip
        updateIp = ip;
    }

    /**
     * 是否需要刷新ip
     *
     * @return 需要刷新true 不需要false
     */
    public boolean needRefreshIp() {
        if (Objects.isNull(updateIpDetail)) {
            return true;
        }

        return !Objects.equals(updateIp, updateIpDetail.getIp());
    }

    public void refreshIpDetail(IpDetail ipDetail) {
        if (Objects.equals(createIp, ipDetail.getIp())) {
            createIpDetail = ipDetail;
        }
        if (Objects.equals(updateIp, ipDetail.getIp())) {
            updateIpDetail = ipDetail;
        }
    }
}
